package com.gin.pixiv.api

import com.gin.pixiv.param.TagAddParam
import com.gin.pixiv.response.PixivResponse
import com.gin.pixiv.response.field.PixivTag
import com.gin.pixiv.response.tag.SuggestByWordBody
import com.gin.pixiv.response.tag.TagDetail
import retrofit2.Call
import retrofit2.http.*

/**
 * 标签相关API
 * @author BX-Gin
 * @from 2024/2/26 14:27
 */
interface TagApi {
    /**
     * 通过关键字查询相关的标签
     */
    @GET("ajax/tags/suggest_by_word")
    fun getSuggestByWord(@Query("word") keyword: String): Call<PixivResponse<SuggestByWordBody>>

    /**
     * 查询标签的详细信息
     */
    @GET("ajax/tag/info")
    fun getTagDetail(@Query("tag") tag: String): Call<PixivResponse<TagDetail>>

    /**
     * 为一个绘画作品添加标签
     */
    @POST("ajax/tags/illust/{pid}/add")
    fun postIllustAdd(
        @Path("pid") pid: Long,
        @Body param: TagAddParam,
    ): Call<PixivResponse<PixivTag>>

    /**
     * 为一个小说增加标签
     */
    @POST("ajax/tags/novel/{nid}/add")
    fun postNovelAdd(
        @Path("nid") nid: Long,
        @Body param: TagAddParam,
    ): Call<PixivResponse<PixivTag>>
}